iT邦幫忙

2024 iThome 鐵人賽

DAY 8
0
Odoo

前後端整合學習,不只是後端管理系列 第 8

【Day8】odoo 撰寫第一個api - 理解RESTful

  • 分享至 

  • xImage
  •  

RESTful API 基本介紹

REST(Representational State Transfer,表述性狀態轉移)是一種基於 Web 的 API 設計風格,由 Roy Fielding 在 2000 年提出。RESTful API 是一種遵循 REST 架構風格的 API,旨在簡單、高效且具可擴展性。RESTful API 主要依賴於 HTTP 協議,並使用其常見方法來進行資源的操作:

  • GET:檢索資源
  • POST:創建新資源
  • PUT:更新資源
  • DELETE:刪除資源

這些方法組合成一個統一的接口,通過這種方式,可以用一致的方式對不同的資源進行操作,從而達到標準化和簡單易用的目的。

路由設計的原則與格式

在 RESTful API 中,路由(Route)用來定義 API 的端點,即客戶端請求資源時的 URL。路由的設計直接影響到 API 的可讀性、可用性和擴展性,因此需要遵循一定的原則:

  1. 資源導向:在 RESTful API 中,URL 應該指向資源而不是動作。例如,假設我們有一個管理產品的 API,應該使用 /products 作為資源的路由,而不是 /getProducts/createProduct。具體的操作由 HTTP 方法來決定,而不是由 URL 來指定。
GET /products       # 獲取所有產品
GET /products/{id}  # 獲取特定產品
POST /products      # 創建新產品
PUT /products/{id}  # 更新特定產品
DELETE /products/{id} # 刪除特定產品
  1. 使用複數名詞:資源名稱應該使用複數名詞,這樣可以更直觀地表示這是一組資源而非單個資源。例如,應該使用 /products 而不是 /product 作為路由。
  2. 層次結構路由:在需要表示資源之間的從屬關係時,可以使用層次結構路由。例如,如果我們需要查詢某個特定分類下的產品,可以設計如下路由:
GET /categories/{category_id}/products # 獲取特定分類下的產品
  1. 避免動詞:除非是對資源的某些特殊操作,否則應該避免在路由中使用動詞。操作的性質應該通過 HTTP 方法來表達,而不是通過 URL,也就是說不是透過getProducts這種方式來取得資料

  2. 支持filter與paging:在處理大型數據集時,支持過濾和分頁可以提高 API 的效率和性能。例如,通過添加查詢參數來過濾產品或限制返回的結果數量:

GET /products?category=electronics&limit=10

結語

理解 RESTful API 的基本概念和設計原則,是撰寫高質量 API 的關鍵。在 Odoo 中,這些原則同樣適用,通過合理的路由設計和正確的 HTTP 方法使用,我們可以構建出靈活且易於維護的 API。這些 API 不僅能夠支持系統內部的各種業務邏輯。在接下來的文章中,我們將繼續探討如何基於 Odoo 的 Addons 架構撰寫 API 並使用 Postman 進行測試。


上一篇
【Day7】快速查詢開發需要的對應名稱
下一篇
【Day9】odoo 撰寫第一個api
系列文
前後端整合學習,不只是後端管理20
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言